home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 4: GNU Archives / Linux Cubed Series 4 - GNU Archives.iso / gnu / glibc-1.09 / glibc-1 / glibc-1.09.1 / hurd / Makefile < prev    next >
Encoding:
Makefile  |  1994-10-24  |  4.1 KB  |  119 lines

  1. # Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
  2. # This file is part of the GNU C Library.
  3.  
  4. # The GNU C Library is free software; you can redistribute it and/or
  5. # modify it under the terms of the GNU Library General Public License
  6. # as published by the Free Software Foundation; either version 2 of
  7. # the License, or (at your option) any later version.
  8.  
  9. # The GNU C Library is distributed in the hope that it will be useful,
  10. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12. # Library General Public License for more details.
  13.  
  14. # You should have received a copy of the GNU Library General Public
  15. # License along with the GNU C Library; see the file COPYING.LIB.  If
  16. # not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  17. # Cambridge, MA 02139, USA.
  18.  
  19. subdir := hurd
  20.  
  21. all:
  22.  
  23. # Some things below (but before including Rules) use configuration variables.
  24. include ../Makeconfig
  25.  
  26.  
  27. headers = hurd.h $(interface-headers) \
  28.       $(addprefix hurd/,fd.h id.h port.h signal.h userlink.h \
  29.                     resource.h threadvar.h)
  30.  
  31. distribute := hurdfault.h intr-rpc.awk intr-rpc.defs STATUS
  32.  
  33. # The RPC interfaces go in a separate library.
  34. interface-library := libhurduser.a
  35. user-interfaces        := $(addprefix hurd/,\
  36.                        auth process startup \
  37.                        msg msg_reply msg_request \
  38.                        exec core interrupt \
  39.                        fs fsys io term socket ifsock)
  40. server-interfaces    := hurd/msg
  41.  
  42. routines = hurdinit hurdid hurdlookup hurdpid hurdrlimit hurdprio hurdexec \
  43.        __setauth setauth \
  44.        __pid2task __task2pid pid2task task2pid \
  45.        getuids setuids getumask fchroot \
  46.        hurdsock hurdauth invoke-trans \
  47.        privports \
  48.        msgportdemux \
  49.        fopenport __fopenport \
  50.         vpprintf \
  51.        ports-get ports-set hurdports hurdmsg \
  52.        $(sig) $(dtable) hurdinline
  53. sig    = hurdsig hurdfault faultexc siginfo hurd-raise preempt-sig \
  54.       trampoline longjmp-ctx longjmp-ts catch-exc exc2signal hurdkill
  55. dtable    = dtable port2fd new-fd alloc-fd intern-fd \
  56.       __getdport getdport openport \
  57.       fd-close fd-read fd-write hurdioctl
  58. aux := hurdsyms
  59.  
  60. # XXX this is a temporary hack; see hurdmalloc.h
  61. routines += hurdmalloc
  62. distribute += hurdmalloc.h
  63.  
  64. # Get the proper definition of `hurd-srcdir'.
  65. include ../sysdeps/mach/hurd/Makefile
  66.  
  67. # Use and install the Hurd header files directly out of the Hurd source.
  68.  
  69. # Find the MiG defs files in the Hurd source.
  70. vpath %.defs $(hurd-srcdir)
  71.  
  72. # Install all .h and .defs files we find in the Hurd's hurd/ directory.
  73. hurd-headers := $(patsubst $(hurd-srcdir)/%,%,\
  74.                $(wildcard $(addprefix $(hurd-srcdir)/hurd/,\
  75.                           *.defs *.h)))
  76.  
  77.  
  78. # Don't distribute the Hurd headers; they are in the Hurd distribution.
  79. dont_distribute = $(hurd-headers)
  80.  
  81. # DO NOT try to remake these in any way!!!
  82. $(addprefix $(hurd-srcdir)/,$(hurd-headers)) : ;
  83. install-others += $(addprefix $(includedir)/,$(hurd-headers))
  84. $(includedir)/hurd/%: $(hurd-srcdir)/hurd/%; $(do-install)
  85.  
  86. include ../mach/Machrules
  87. include ../Rules
  88.  
  89. # intr-rpc.defs defines the INTR_INTERFACE macro to make the generated RPC
  90. # stubs send-interruptible, and to prefix them with `hurd_intr_rpc_'.
  91. user-MIGFLAGS += -imacros intr-rpc.defs
  92.  
  93. # Run each generated user stub through intr-rpc.awk, which will detect
  94. # stubs __hurd_intr_rpc_% and generate the user-callable function for the
  95. # stub: this is a wrapper which calls __hurd_intr_rpc_% inside
  96. # HURD_EINTR_RPC.
  97. define transform-user-stub
  98. gawk -v call=$${call} -f $(word 2,$^) \
  99.     $(objpfx)tmp_$${call}.c > $(objpfx)tmpi_$${call}.c; \
  100. rm -f $(objpfx)tmp_$${call}.c;
  101. endef
  102. transform-user-stub-output = tmpi
  103.  
  104. $(foreach if,$(user-interfaces),$($(if)-calls:%=$(objpfx)RPC_%.o))): \
  105.     hurd/signal.h
  106.  
  107. $(user-interfaces:%=$(objpfx)%.ustamp): intr-rpc.awk
  108.  
  109. $(objpfx)fault%.c $(objpfx)fault%.h: $(mach-srcdir)/mach/%.defs
  110.     $(MIG) $(MIGFLAGS) -prefix _hurdsig_fault_ \
  111.            -server $(@:.h=.c) -sheader $(@:.c=.h) \
  112.            -user /dev/null -header /dev/null \
  113.            $<
  114. generated += faultexc.c faultexc.h
  115.  
  116. # We need this static dependency to get faultexc.h generated the first time.
  117. $(objpfx)hurdfault.o $(objpfx)hurdfault.d: \
  118.     $(objpfx)faultexc.h $(objpfx)faultexc.c
  119.